﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace proyectoferreteria
{
    public partial class frmclientejuridico : System.Web.UI.Page
    {

        bdferreteriaEntities context = new bdferreteriaEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    this.cargarcomborubro();
                    this.CargarControlesParametro(long.Parse(Request.QueryString["idcliente"].ToString()));
                }

            }
            catch (Exception) { }
        }
        private void cargarcomborubro()
        {
            var rubro = from a in context.rubro
                        select a;
            this.cbrubro.DataSource = rubro;
            this.cbrubro.DataTextField = "nombre_rubro";
            this.cbrubro.DataValueField = "idrubro";
            this.cbrubro.DataBind();
        }

        private void CargarControlesParametro(long idcliente)
        {
            //sacando los datos de lA TABLA cliente
            cliente objcliente = context.cliente.FirstOrDefault(a => a.idcliente == idcliente);
            this.txbidcliente.Text = objcliente.idcliente.ToString();
            this.txbdireccion.Text = objcliente.direccion;
            this.txbtelefono.Text = objcliente.telefono;
            this.txbcelular.Text = objcliente.celular.ToString();
            this.txbnit.Text = objcliente.nit.ToString();

            //sacandolos datos de la TABLA juridico
            juridico objjuridico = context.juridico.FirstOrDefault(a => a.idcliente == idcliente);
            this.txbrpte_legal.Text = objjuridico.rpte_legal;
            this.txbrazon_legal.Text = objjuridico.razon_social;
            this.txbnro_padron.Text = objjuridico.nro_patron;

        }
        private void cargarObjetoCliente(ref cliente objcliente)
        {
            objcliente.idcliente = long.Parse(this.txbidcliente.Text);
            objcliente.direccion = this.txbdireccion.Text;
            objcliente.telefono = this.txbtelefono.Text;
            objcliente.celular = Int32.Parse(this.txbcelular.Text);
            objcliente.nit = long.Parse(this.txbnit.Text);
            objcliente.idrubro = long.Parse(this.cbrubro.SelectedValue.ToString());
        }
        private void cargarObjetoJuridico(ref juridico objjuridico)
        {
            objjuridico.idcliente = long.Parse(this.txbidcliente.Text);
            objjuridico.rpte_legal = this.txbrpte_legal.Text;
            objjuridico.razon_social = this.txbrazon_legal.Text;
            objjuridico.nro_patron = this.txbnro_padron.Text;
        }

        protected void btnregistrar_Click(object sender, EventArgs e)
        {
            cliente objcliente = new cliente();

            //long idcliente = long.Parse(txbidcliente.Text);
            long idcliente = (from c in context.cliente select c.idcliente).Max() + 1;
            this.txbidcliente.Text = idcliente.ToString();

            this.cargarObjetoCliente(ref objcliente);
            context.cliente.AddObject(objcliente);

            juridico objjuridico = new juridico();
            this.cargarObjetoJuridico(ref objjuridico);
            context.juridico.AddObject(objjuridico);

            Int32 res = context.SaveChanges();
            if (res > 0)
            {
                this.Label19.Text = "Cliente juridico registrado";
            }
            else
            {
                this.Label19.Text = "Error en el registro de Cliente Juridico !!!";
            }
        }

        protected void btnmodificar_Click(object sender, EventArgs e)
        {
            long id = long.Parse(this.txbidcliente.Text);

            cliente objcliente = context.cliente.FirstOrDefault(a => a.idcliente == id);
            this.cargarObjetoCliente(ref objcliente);

            juridico objjuridico = context.juridico.FirstOrDefault(a => a.idcliente == id);
            this.cargarObjetoJuridico(ref objjuridico);

            int nroActualizacion = context.SaveChanges();
            if (nroActualizacion > 0)
            {
                this.Label19.Text = "Cliente Modificado...!!!";
                //    this.mostrarRubro();
            }
            else
            {
                this.Label19.Text = "Error al Modificar !!!!!";
            }
        }
    }
}